Implementation Notes

Issue #6 — VSS Virtual Subnet Selection (RFC 6607) — 2026-06-14

Design Decisions

Decision VSS sub-options as raw bytes due to dhcproto limitation

Ambiguity: dhcproto defines RelayCode::VirtualSubnet (151) and VirtualSubnetControl (152) but has no RelayInfo variants for them.

Choice: Encode VSS sub-options as raw TLV byte sequences, decoded manually in check_server_support().

Rationale: Same approach as Remote-ID — the wire format is simple and correct. Can switch to dedicated variants if dhcproto adds them.

Deviations

None.

Tradeoffs

Tradeoff Separate v4/vss.rs and v6/vss.rs vs shared module

Chose: Separate files per protocol, each feature-gated independently.

Rationale: Avoids #[cfg] noise inside a single file. The protocols diverge enough (sub-options inside Option 82 vs standalone option 68) that shared code would be minimal.

Open Questions

None.